package com.cloud.rou.im.connection.container.repository;

import com.cloud.rou.im.connection.container.session.Session;
import io.netty.channel.ChannelHandlerContext;

/**
 * <p></p>
 *
 * @author GaoShuangWen
 */
public interface UserConnectorRepository {
    /**
     * 获取连接Session
     *
     * @param ctx
     * @return
     */
     Session getConnectSession(ChannelHandlerContext ctx);

    /**
     * 获取连接Session
     *
     * @param userId
     * @return
     */
     Session getConnectSession(Long userId);

    /**
     * 添加连接Session
     *
     * @param conn
     */
     void addConnectSession(Session conn);

    /**
     * 删除连接Session
     *
     * @param userId
     */
    void removeConnectSession(Long userId);

    /**
     * 删除连接Session
     *
     * @param ctx
     */
    void removeConnectSession(ChannelHandlerContext ctx);

    /**
     * 删除所有连接Session
     */
    void removeAllConnectSession();
}
